/*
	日志库头文件
*/
#pragma once

#include "Logger.h"

namespace mylog{
	// 1.提供一个全局接口来得到指定的日志器对象
	const Logger::ptr& GetLogger(std::string name);

	// 2.提供一个全局接口来得到默认日志器对象
	const Logger::ptr& DefaultLogger();


	// 3.使用宏函数简化用户的传参，自动填充行号和文件名
#define Debug(fmt, ...) Debug(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define Info(fmt, ...) Info(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define Warning(fmt, ...) Warning(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define Error(fmt, ...) Error(__FILE__, __LINE__, fmt, ##__VA_ARGS__)
#define Fatal(fmt, ...) Fatal(__FILE__, __LINE__, fmt, ##__VA_ARGS__)

	// 4.给用户使用的宏函数
#define DEBUG(fmt,...) mylog::DefaultLogger()->Debug(fmt, ##__VA_ARGS__)
#define INFO(fmt,...) mylog::DefaultLogger()->Info(fmt, ##__VA_ARGS__)
#define WARNING(fmt,...) mylog::DefaultLogger()->Warning(fmt, ##__VA_ARGS__)
#define ERROR(fmt,...) mylog::DefaultLogger()->Error(fmt, ##__VA_ARGS__)
#define FATAL(fmt,...) mylog::DefaultLogger()->Fatal(fmt, ##__VA_ARGS__)

}
